Uygulama Katmanı
Ağ uygulamalarının esasları
Ağ uygulamaları, ağ üzerinden veri alışverişi yapmak için kullanılan yazılımlardır. İnternet ve diğer ağlarda kullanılan uygulamaların temel prensipleri şunlardır:
- Bağlantı yönetimi: İki nokta arasında güvenli bir bağlantı kurmak ve veri akışını yönetmek için kullanılan protokollerdir. Örneğin, TCP (Transmission Control Protocol), verilerin gönderilmesi ve alınması sırasında doğrulama ve hata kontrolü sağlar.
- Adresleme: Veri paketlerinin doğru hedefe ulaşması için kullanılan yöntemlerdir. IP (Internet Protocol) adresleri, ağdaki cihazların benzersiz tanımlayıcısıdır ve veri paketleri, hedef IP adresine yönlendirilir.
- Veri formatı: Verilerin standart bir şekilde kodlanması, taşınması ve depolanması için kullanılan yapıdır. Örneğin, HTML (Hypertext Markup Language) web sayfalarının oluşturulması için kullanılan bir standarttır.
- Veri paylaşımı: Bir ağda bulunan cihazlar arasında veri paylaşımı için kullanılan yöntemlerdir. Dosya paylaşımı, baskı paylaşımı ve veritabanı erişimi gibi örnekler bulunmaktadır.
- Güvenlik: Veri güvenliği, ağ üzerindeki bilgilerin korunması için çok önemlidir. Şifreleme, yetkilendirme ve kimlik doğrulama gibi yöntemler, ağ uygulamalarında kullanılan güvenlik mekanizmalarıdır.
- Çoklu ortam: Ağ uygulamaları, farklı medya türlerinde veri aktarımı yapabilirler. Ses, video ve grafik gibi farklı ortamlar için özel protokoller ve standartlar bulunmaktadır. Örneğin, SIP (Session Initiation Protocol) sesli görüşme uygulamaları için kullanılan bir protokoldür.
- Dağıtık hesaplama: Ağ uygulamaları, ağdaki birden fazla cihazın kaynaklarını kullanarak dağıtık hesaplama yapabilirler. Bu, büyük ölçekli hesaplama problemlerinin çözülmesinde önemli bir rol oynamaktadır. Örneğin, Hadoop, büyük ölçekli veri işleme problemleri için kullanılan bir dağıtık hesaplama platformudur.
Uygulama Mimarileri
Uygulama mimarileri, bir ağ uygulamasının tasarımında kullanılan farklı yaklaşımlardır. En yaygın üç uygulama mimarisi İstemci-Sunucu, P2P ve Hibrit'tir.
- İstemci-Sunucu Mimarisi: Bu mimaride, uygulama işlevleri istemci ve sunucu arasında paylaştırılır. İstemci, sunucuya talepte bulunur ve sunucu işlemleri gerçekleştirerek yanıt verir. Bu mimari genellikle işletme ortamlarında kullanılır. Örnek olarak, bir web tarayıcısı istemci, web sunucusu ise sunucu rolünü üstlenir.
- P2P (Peer-to-Peer) Mimarisi: Bu mimaride, tüm cihazlar eşit olarak paylaşım işlevlerini yerine getirir. P2P mimarisi, merkezi bir sunucuya ihtiyaç duymaz. Bu nedenle, uygulama dağıtımında genellikle daha düşük maliyetli ve daha ölçeklenebilir bir seçenek olarak tercih edilir. Örnek olarak, dosya paylaşımı programları gibi uygulamalar P2P mimarisini kullanır.
- Hibrit Mimarisi: Hibrit mimarisinde, uygulamanın bazı kısımları istemci-sunucu mimarisinde ve bazı kısımları ise P2P mimarisinde tasarlanır. Örneğin, bir mesajlaşma uygulaması istemci-sunucu mimarisi kullanabilirken, dosya paylaşımı özelliği P2P mimarisi ile tasarlanabilir.
Bu üç mimari arasında seçim yapmak, uygulamanın gereksinimlerine ve işlevselliğine bağlıdır.
Mimarilerin Karşılaştırılması
İstemci-sunucu, P2P ve hibrit mimarileri farklı özellikleriyle birbirinden ayrılır. Aşağıda bu mimarilerin avantaj ve dezavantajlarına dair bilgi verilmiştir:
İstemci-Sunucu Mimarisi:
Avantajları:
- Yüksek güvenlik sağlar, çünkü sunucu erişimi kontrol eder.
- Sunucuda merkezi bir veri kaynağı bulunur, böylece veriler güvenli bir şekilde saklanabilir.
- Sunucu, performansı optimize edebilir ve kaynakları denetleyebilir.
- Ayrı sunucu ve istemci uygulamaları geliştirilebilir.
- İstemciler, sunucudan uzakta bile çalışabilirler.
Dezavantajları:
- Sunucu çökmesi durumunda sistem çalışmayabilir.
- Sunucunun gereksinimleri, işlemci ve bellek gibi donanım kaynaklarını yüksek maliyetle gerektirir.
- Sunucuya bağlanmak için sürekli olarak ağa bağlı olunması gerekir.
P2P (Eşten Eşe) Mimarisi:
Avantajları:
- Daha düşük maliyetlidir, çünkü merkezi bir sunucu gerektirmez.
- Daha yüksek ölçeklenebilirlik sağlar, çünkü her düğüm verileri saklayabilir ve paylaşabilir.
- Sunucu çökmesi durumunda sistem çalışmaya devam edebilir.
- P2P ağı, işlemleri daha hızlı hale getirerek yüksek performans sunabilir.
Dezavantajları:
- Güvenlik riski oluşabilir, çünkü herhangi bir düğüm diğer düğümlerin kimliğini sahtekarlık amacıyla ele geçirebilir.
- Kaynakların paylaşımı düzenlenmediği takdirde, ağın bant genişliği tüketilebilir.
- Performans, ağdaki düğümlerin sayısına bağlı olarak düşebilir.
Hibrit Mimarisi:
Avantajları:
- Hem istemci-sunucu hem de P2P mimarilerinin avantajlarını birleştirir.
- Kullanıcılar arasında veri paylaşımı için P2P kullanabilirken, veri güvenliği için merkezi sunucular kullanılabilir.
- Kullanıcıların çevrimiçi durumlarında diğer kullanıcılarla etkileşime geçebilmelerini sağlar.
- Düşük maliyetli ve yüksek ölçeklenebilirlik sağlayabilir.
Dezavantajları:
- Karmaşık tasarım: Hibrit mimariler, hem istemci-sunucu hem de p2p mimarilerinin özelliklerini birleştirdiği için karmaşık bir tasarıma sahiptir. Bu nedenle, geliştiricilerin ve yöneticilerin tasarım ve yönetim süreçlerinde daha fazla zaman ve çaba harcamaları gerekebilir.
- Yüksek maliyet: Hibrit mimari, birden fazla teknolojinin birleştirilmesiyle oluştuğu için daha yüksek bir maliyete sahip olabilir. Özellikle, hem istemci-sunucu hem de p2p ağlarına özel ekipman ve yazılımların kullanılması gerekiyorsa, maliyet daha da yükselebilir.
- Güvenlik sorunları: Hibrit mimarilerin, hem istemci-sunucu hem de p2p ağlarının güvenlik sorunlarını birleştirdiği görülebilir. Bu, güvenlik açıkları ve saldırı risklerini artırabilir.
- Yönetim zorlukları: Hibrit mimariler, hem istemci-sunucu hem de p2p ağlarının yönetim zorluklarını birleştirdiği için yönetim süreçlerini daha karmaşık hale getirebilir. Bu, sistem yöneticilerinin ve kullanıcıların yönetim süreçlerinde daha fazla zorlukla karşılaşabileceği anlamına gelir.
Process
Process, bilgisayar bilimleri ve işletim sistemleri alanında kullanılan bir terimdir. Bir process (işlem), çalışan bir programın çalıştırılmak üzere yüklenmiş halidir. İşletim sistemi, bir işlemciye öncelik vererek, birden fazla işlemi aynı anda çalıştırabilir. Her process, kendi adres alanına sahip olan ve birbirleriyle etkileşim kurabilen, bağımsız bir ortamda çalışır.
İstemci İşlemi
İstemci İşlemi, istemci-sunucu mimarisinde kullanılan bir terimdir. İstemci işlemi, sunucudan hizmet almak üzere yapılan bir istek işlemidir. İstemci, sunucuya bağlanır, hizmet talep eder ve sunucudan hizmeti alır. İstemci işlemi, istemci bilgisayar tarafından başlatılır ve sunucu tarafından cevaplanır. İstemci işlemi, genellikle ağ üzerinden bir protokol aracılığıyla gerçekleştirilir.
Sunucu İşlemi
Sunucu işlemi, bir ağdaki diğer cihazların erişebileceği hizmetler sağlayan bir işlemdir. Bu hizmetler, web sayfaları, dosya paylaşımı, e-posta, veritabanları vb. olabilir. Sunucu işlemi, genellikle bir sunucu bilgisayarda çalıştırılır ve ağdaki diğer cihazların (istemci işlemlerinin) taleplerine cevap verir.
Adresleme İşlemleri:
Ağ adresleme işlemi, bir cihazın diğer bir cihaza veri göndermek için belirli bir adresi nasıl bulduğunu tanımlar. Adresleme işlemi, bir ağdaki her cihazın benzersiz bir IP adresi (Internet Protokol adresi) olduğu TCP/IP protokolü tarafından kullanılır. Adresleme işlemi, verilerin doğru hedefe ulaşmasını sağlar. Adresleme işleminde kullanılan adres türleri arasında MAC adresleri, IP adresleri ve port numaraları yer alır.
Soket:
Soket, ağ programlama dilinde kullanılan bir arayüzdür. Bu arayüz, uygulama yazılımlarının ağ ile iletişim kurabilmesi için gerekli olan erişim noktasını temsil eder. Soket, uygulamaların ağ üzerindeki bir diğer uygulama ile iletişim kurmasını sağlar.
Bir soket, IP adresi ve port numarası çiftiyle tanımlanır. IP adresi, hedef ağdaki hedef makinenin benzersiz kimliğini belirtirken, port numarası, belirli bir uygulamaya yönlendirilen trafiği belirtir. İletişim kurulacak cihazın adres bilgisinin yanı sıra protokol tipi, bağlantı türü ve diğer parametreler de soket tanımlamasında yer alabilir.
Soketler, iki türde olabilir: akış soketi (stream socket) ve datagram soketi (datagram socket). Akış soketleri, güvenilir, bağlantı temelli bir iletişim için kullanılır ve TCP protokolü tarafından sağlanır. Datagram soketleri ise güvenilmeyen, bağlantısız bir iletişim için kullanılır ve UDP protokolü tarafından sağlanır.
Web ve HTTP
Web
Web sayfaları, sunucular üzerinde barındırılan ve internet üzerinden erişilebilen HTML dosyalarıdır. Bir web sayfasının çalışması, web sunucusu ve istemci arasında gerçekleşen birçok adımdan oluşur.
Web sayfasının URL'si (Uniform Resource Locator), host name ve path name olarak bilinen iki ana bölümden oluşur. Host name, web sunucusunun adını veya IP adresini belirtir. Path name ise sunucuda hangi dizinde veya klasörde HTML dosyasının bulunduğunu belirtir.
Web sayfası yüklendiğinde, istemci (genellikle bir web tarayıcısı) sunucuya bir HTTP isteği gönderir. Bu istek, belirtilen host name ve path name'e sahip web sayfasını içerir. Sunucu, isteği aldıktan sonra HTML dosyasını arar ve istemciye geri gönderir.
HTML dosyası, bir dizi HTML etiketi içerir ve tarayıcı tarafından yorumlanarak web sayfasının görüntüsü oluşturulur. Bu etiketler, web sayfasının farklı bölümlerini, metinleri, resimleri, videoları, linkleri ve diğer öğeleri belirtir.
Nesne HTML dosyaları, web sayfasında kullanılan farklı türdeki öğeleri temsil eder. Örneğin, bir resim dosyası bir nesne HTML dosyası olarak gömülebilir ve web sayfasında görüntülenebilir. Bu nesneler, web sayfalarının işlevselliğini arttırmak için kullanılır.
Kısacası, web sayfaları, HTML dosyalarından oluşan ve sunucular üzerinde barındırılan, internet üzerinden erişilebilen belgelerdir. Tarayıcılar, web sayfalarının HTML etiketlerini yorumlayarak, web sayfalarının görüntülenmesini sağlar.
HTTP
HTTP (Hypertext Transfer Protocol) web sayfalarının ve diğer verilerin internet üzerinden iletilmesi için kullanılan bir iletişim protokolüdür. HTTP, bir istemci-sunucu protokolüdür, bu da istemci programların sunuculara talep gönderip yanıt alması gerektiği anlamına gelir.
HTTP, TCP/IP protokol yığınının üstünde çalışır ve web tarayıcıları (istemciler) ve web sunucuları arasında veri iletişimini sağlar. HTTP, web sayfalarını, görüntüleri, videoları, ses dosyalarını vb. yüklemek, göndermek ve almak için kullanılır.
HTTP, bir istek-yanıt protokolüdür, bu da istemcinin sunucuya bir istek gönderdiğini ve sunucunun isteği aldıktan sonra bir yanıt gönderdiğini gösterir. İstek ve yanıt, mesaj olarak adlandırılır ve aşağıdaki bileşenleri içerir:
- İstek Başlığı (Request Header): İstemcinin sunucuya gönderdiği isteğin detaylarını içerir. İstek başlığı genellikle isteğin türü (GET, POST vb.), istenen kaynak (URI), ve istemcinin özellikleri (kullanıcı ajanı, dil ayarı vb.) gibi bilgileri içerir.
- İstek Gövdesi (Request Body): Bazı istekler, istek gövdesi olarak bilinen verileri sunucuya gönderir. Bu genellikle bir HTML formunun içeriği veya yüklenmesi gereken bir dosya gibi veriler olabilir.
- Yanıt Başlığı (Response Header): Sunucunun istekle ilgili bilgileri içeren yanıt başlığı. Bu genellikle yanıt durum kodu (200 OK, 404 Not Found vb.), sunucunun kullanılan yazılımı ve sunucunun yanıtla ilgili diğer bilgilerini içerir.
- Yanıt Gövdesi (Response Body): Sunucu tarafından gönderilen verilerdir. Bu genellikle bir HTML sayfası, görüntü, video, ses dosyası veya başka bir veri türü olabilir.
HTTP protokolü, standart bir dizi istek yöntemi tanır. En sık kullanılanlar şunlardır:
- GET: Bir kaynağın alınması için kullanılır.
- POST: Bir formun doldurulması veya bir dosyanın yüklenmesi gibi verilerin sunucuya gönderilmesi için kullanılır.
- PUT: Bir kaynağın güncellenmesi için kullanılır.
- DELETE: Bir kaynağın silinmesi için kullanılır.
HTTP ayrıca, cookie'ler, oturum yönetimi ve HTTPS (HTTP Secure) gibi özellikleri de destekler.
Sonuç olarak, HTTP, internet üzerindeki web sayfaları ve diğer verilerin iletilmesi için temel bir protokoldür.
HTTP 1.0 ve HTTP 1.1 ise HTTP protokolünün farklı sürümleridir ve aralarında bazı farklılıklar vardır. Aşağıda, her birinin özelliklerine ve farklılıklarına daha detaylı bir şekilde bakalım:
HTTP 1.0:
- İstemci her istekte yeni bir bağlantı açar ve her cevap aldığında bağlantıyı kapatır.
- Sadece GET ve HEAD yöntemleri desteklenir. POST ve diğer yöntemler ancak ek uzantılarla kullanılabilir.
- Her istek ayrı ayrı işlenir, aynı anda birden fazla istek gönderilmez.
- Cevaplar arasında sıkıştırma (compression) ve yönlendirme (redirect) desteği yoktur.
- Yalnızca ASCII karakter seti kullanılır.
HTTP 1.1:
- Bağlantılar varsayılan olarak kalıcıdır, yani aynı sunucuyla ilgili diğer istekler için yeniden kullanılabilirler.
- GET, POST, HEAD, PUT, DELETE, OPTIONS, CONNECT, TRACE yöntemleri gibi birçok yöntem desteklenir.
- Birden fazla istek ve cevap aynı anda gönderilebilir (pipelining).
- Cevaplar arasında sıkıştırma ve yönlendirme desteği vardır.
- Çoklu dil desteği ve karakter seti desteği gibi daha fazla özellik bulunur.
HTTP 1.1, HTTP 1.0'a göre daha verimli ve gelişmiş özelliklere sahiptir. Ancak bazı sunucu ve istemciler hala HTTP 1.0 kullanıyor olabilir, bu nedenle uyumlu olma sorunu ortaya çıkabilir.
HTTP Bağlantıları
HTTP protokolü, iki tür bağlantı türü sunar: kalıcı olmayan ve kalıcı HTTP bağlantıları.
Kalıcı olmayan HTTP bağlantıları, istek-cevap döngüsü tamamlandıktan sonra bağlantıyı kapatır. Bu nedenle, her yeni istek için yeni bir bağlantı oluşturulur. Bu durumda, her istek için ayrı ayrı bir TCP bağlantısı oluşturulması gereklidir. Bu, web sunucusunun kaynaklarını tüketebilir ve web sitesinin yavaşlamasına neden olabilir.
Kalıcı HTTP bağlantıları ise isteklerin ve cevapların aynı TCP bağlantısı üzerinden gerçekleştirilmesine izin verir. Bu, istek-cevap döngüsü tamamlandıktan sonra bağlantının kapatılmaması anlamına gelir. Bu tür bağlantılar, bir web sayfası için birden fazla kaynak isteğinde bulunulduğunda özellikle faydalıdır. Bu sayede, web sunucusu kaynaklarını daha verimli kullanır ve web sitesinin hızını arttırır.
Kalıcı HTTP bağlantıları, HTTP 1.1 protokolü ile standart hale gelmiştir. HTTP 1.0 protokolünde, varsayılan bağlantı tipi kalıcı olmayan bağlantılardır. HTTP 1.1 protokolünde ise varsayılan bağlantı tipi kalıcı bağlantılardır. Ancak, sunucu kalıcı bağlantılara destek vermezse, bağlantı kalıcı olmayan olarak gerçekleşir. Kalıcı bağlantıların avantajı, sayfa yükleme hızını artırmasıdır. Dezavantajı ise, sunucu kaynaklarını tüketebilmesi ve aşırı yük altında çökebilmesidir.
HTTP İstek Mesajı
HTTP istek mesajı, bir istemcinin bir sunucudan bir kaynak istemesi için kullanılan bir mesajdır ve genellikle aşağıdaki bileşenleri içerir:
- İstek satırı: HTTP yöntemi, kaynağın URI'si ve HTTP sürümü bilgilerini içerir.
- Başlık alanları: İstek hakkında ek bilgi sağlayan metin çiftleri.
- İstek gövdesi: POST, PUT ve diğer yöntemlerde veri göndermek için kullanılan bir varlık veya veri bloğu.
İstek satırı, isteğin türünü belirten HTTP yöntemi (GET, POST, PUT, DELETE vb.), Kaynağın URI'si (Uniform Resource Identifier) ve HTTP sürümü bilgilerini içerir. Başlık alanları, isteğin daha ayrıntılı bilgilerini sağlar. Bu alanlar, isteğin kabul edilebilir kodlamalarını, dil tercihlerini, çerezleri, kimlik doğrulama bilgilerini ve benzeri bilgileri içerebilir. İstek gövdesi, istek mesajına veri eklemek için kullanılır. İstek gövdesi genellikle POST ve PUT yöntemleriyle kullanılır ve veri veya varlık göndermek için kullanılır.
HTTP Metod Tipleri
HTTP (Hypertext Transfer Protocol), bir web sunucusu ve bir istemci arasında veri iletişimi için kullanılan bir protokoldür. Bu iletişimde, istemci bir istek gönderir ve sunucu bu isteğe yanıt verir. Bu istekler, HTTP yöntemleri olarak da bilinen HTTP metotları kullanılarak gönderilir.
Bazı HTTP metotları ve detayları aşağıdaki şekildedir:
- GET: GET, belirtilen URL'deki kaynakları okumak için kullanılır. GET yöntemi, sunucudan veri almak için kullanılır. Örneğin, bir web sayfası yüklemek için kullanılır. Bu istekler, genellikle bir tarayıcı tarafından yapılır.
- POST: POST, belirtilen URL'ye veri göndermek için kullanılır. Bu veri, bir web formu tarafından sunucuya gönderilebilir. POST isteği, genellikle bir formu sunucuya göndermek için kullanılır. Örneğin, bir kullanıcının bir ürün satın alma formunu göndermesi.
- PUT: PUT, belirtilen URL'deki kaynakları değiştirmek için kullanılır. Bu yöntem, genellikle bir dosyanın yüklenmesi veya güncellenmesi için kullanılır. Örneğin, bir dosyanın sunucuya yüklenmesi veya güncellenmesi.
- DELETE: DELETE, belirtilen URL'deki kaynakları silmek için kullanılır. Bu yöntem, genellikle bir dosyanın silinmesi için kullanılır. Örneğin, bir kullanıcının bir dosyayı sunucudan silmesi.
- HEAD: HEAD, belirtilen URL'deki kaynakların başlıklarını almak için kullanılır. Bu yöntem, bir belgenin içeriğini almadan sadece başlıklarını almak için kullanılır.
- OPTIONS: OPTIONS, belirtilen URL'nin desteklediği yöntemleri almak için kullanılır. Bu yöntem, sunucudan hangi yöntemlerin desteklendiğini öğrenmek için kullanılır.
Bu HTTP metotları, birçok web uygulaması ve web servisi tarafından kullanılır ve HTTP protokolünün temel özellikleridir.
HTTP cevabı durum kodları
HTTP cevap durum kodları, sunucunun bir isteği aldığında verdiği yanıtların anlamlarını ifade eder. Bazı yaygın HTTP cevap durum kodlarının açıklamaları aşağıdaki şekildedir:
- 200 OK: İstek başarılı bir şekilde işlendi ve istenen kaynak bulundu, sunucu da bu kaynağı başarıyla döndürdü.
- 301 Moved Permanently: İstenen kaynak kalıcı olarak taşındı veya başka bir yere taşındı. Cevapta bulunan Location headerı ile birlikte, istemci isteği yeni konuma yönlendirmelidir.
- 400 Bad Request: İstek yapılırken bir hata oluştu. İstek hatalı formatta veya eksik bir parametre içerebilir.
- 401 Unauthorized: İstemci kimlik doğrulaması gerektiren bir kaynağa erişmeye çalışırken kimlik doğrulama bilgileri geçersizdi veya yoktu.
- 403 Forbidden: İstek yapılan kaynağa erişmek isteyen istemcinin yetkisi yok. Sunucu isteği reddeder.
- 404 Not Found: İstek yapılan kaynak bulunamadı. Bu kod, istemci tarafından istenen kaynak sunucuda mevcut değilse kullanılır.
- 505 HTTP Version Not Supported: Sunucu, istemcinin kullandığı HTTP sürümünü desteklemediğinde kullanılır.
Çerezler
Çerezler, internet tarayıcısı tarafından saklanan küçük metin dosyalarıdır. Web siteleri, çerezleri kullanarak kullanıcılara özelleştirilmiş hizmetler sunabilirler. Bir web sitesi, kullanıcının tarayıcısına çerez göndererek, sonraki ziyaretlerde kullanıcının ayarlarını ve tercihlerini hatırlayabilir.
Çerezler, web sitesi tarafından belirtilen bir süre boyunca saklanır. Bu süre, çerezin ne kadar süre saklanacağına karar veren web sitesi tarafından belirlenir. Bazı çerezler, tarayıcı penceresi kapatıldığında silinirken, diğerleri belirli bir süre boyunca saklanır.
Çerezler, genellikle kullanıcının kimliğini ve oturum durumunu takip etmek için kullanılır. Örneğin, bir web sitesine giriş yaptığınızda, site sizin kim olduğunuzu ve hangi hesaba erişiminizin olduğunu belirlemek için bir çerez oluşturabilir. Bu sayede, web sitesi sonraki ziyaretlerinizde sizi tanır ve giriş yapmanızı gerektirmez.
Çerezlerin bazı dezavantajları da vardır. Örneğin, çerezlerin kullanımı, kullanıcının özel bilgilerinin takip edilmesi veya paylaşılması gibi gizlilik endişelerine yol açabilir. Ayrıca, kötü amaçlı bir web sitesi, çerezleri kullanarak kullanıcıların kimlik bilgilerini çalabilir veya kötüye kullanabilir.
Sonuç olarak, çerezler web siteleri için faydalıdır ancak kullanıcıların gizliliği açısından dikkatli kullanılmalıdır. Kullanıcıların tarayıcılarında çerezleri yönetmeleri veya tamamen devre dışı bırakmaları mümkündür.
FTP
FTP (File Transfer Protocol), ağ üzerinde dosya transferi yapmak için kullanılan bir protokoldür. İstemci-sunucu modeli kullanır ve sunucu, istemci tarafından belirtilen dosyaları okuyup/yazabilir. Genellikle dosyaların web sunucularından indirilmesi için kullanılır.
FTP, dosyaları ASCII veya Binary olarak transfer edebilir. ASCII, metin dosyaları için kullanılırken, Binary, resim ve müzik gibi ikili dosyalar için kullanılır.
FTP istemcisi, sunucuya bağlanmak için FTP sunucusu adını veya IP adresini kullanır. Sunucu adı, FTP istemcisi tarafından kullanıcının FTP isteği göndermek istediği sunucunun adıdır.
FTP, iki tür kullanıcı hesabı kullanır: Anonymous ve Authenticated. Anonymous hesaplar, herhangi bir kimlik doğrulama gerektirmeden FTP sunucusuna erişim sağlar ve herkes tarafından kullanılabilir. Authenticated hesaplar ise, kullanıcı adı ve parola ile doğrulama gerektirir.
FTP protokolü, veri bağlantısı ve kontrol bağlantısı olarak iki ayrı bağlantı kullanır. Kontrol bağlantısı, FTP isteği ve cevapları için kullanılırken, veri bağlantısı, dosya transferi için kullanılır.
FTP'nin avantajları şunlardır:
- FTP, dosyaları güvenli bir şekilde aktarabilir.
- FTP, birden fazla dosyanın ve klasörün bir arada aktarılmasına olanak tanır.
- FTP, dosya transferi sırasında kesinti durumlarında otomatik olarak devam edebilir.
FTP'nin dezavantajları şunlardır:
- FTP, güvenli bir protokol değildir ve veriler açıkta kaldığı için kötü amaçlı saldırılara maruz kalabilir.
- FTP'nin hızı düşüktür ve büyük dosyaların transferi zaman alabilir.
- FTP, kullanımı kolay değildir ve belirli bir teknik bilgi gerektirir.
FTP Bağlantıları
FTP (File Transfer Protocol) protokolünde, kontrol bağlantısı ve veri bağlantısı adı verilen iki farklı bağlantı türü kullanılır.
Kontrol bağlantısı, FTP oturumunun başlatılmasıyla birlikte açılır ve oturum boyunca açık kalır. Bu bağlantı, sunucuyla istemci arasında komutlar ve yanıtların gönderilmesi için kullanılır. Bu bağlantıda genellikle 21 numaralı TCP portu kullanılır.
Veri bağlantısı, dosya transferi için kullanılır. Bu bağlantı FTP sunucusu ve istemcisi arasında açılır, dosya transferi tamamlandığında kapatılır. Veri bağlantısı, kontrol bağlantısından ayrı bir bağlantıdır ve veri transferi sırasında kullanılır. Veri bağlantısı için kullanılan port numarası, pasif modda FTP sunucusu tarafından belirtilir.
FTP'de kontrol bağlantısı ve veri bağlantısı ayrı olduğundan, dosya transferi işlemi için iki farklı bağlantı açılması gereklidir. Bu nedenle, FTP protokolü biraz yavaş ve karmaşıktır. Ancak, FTP'nin avantajı, farklı işletim sistemleri arasında dosya transferi yapabilmesidir.
Elektronik Posta
Elektronik posta, bilgisayar ağları aracılığıyla iletilen bir iletişim yöntemidir. Elektronik postanın temel bileşenleri şunlardır:
- Kullanıcı Arayüzü: Kullanıcıların e-postalarını oluşturdukları, gönderdikleri, aldıkları ve okudukları arayüzdür. Kullanıcı arayüzü, bir e-posta istemcisinde (Outlook, Gmail, Yahoo Mail vb.) veya bir web tarayıcısında (Gmail web arayüzü, Yahoo Mail web arayüzü vb.) yer alabilir.
- Posta Sunucuları: E-postaların saklandığı, yönlendirildiği ve alınarak teslim edildiği sunuculardır. E-posta sunucuları iki tür olabilir: giden posta sunucusu (SMTP sunucusu) ve gelen posta sunucusu (POP3 veya IMAP sunucusu). SMTP sunucusu, gönderilen e-postaları alıcıların posta sunucusuna gönderirken kullanılırken, POP3 veya IMAP sunucusu, e-postaların alınmasında kullanılır.
- SMTP: Simple Mail Transfer Protocol (Basit Posta Aktarım Protokolü), elektronik postanın gönderilmesi için kullanılan bir protokoldür. SMTP sunucusu, gönderenin bilgisayarından alıcıya gönderilen e-postayı teslim eder.
Elektronik posta, gönderen tarafından yazılan mesajın (gövde) bir başlık (header) ve bir ayak (footer) ile birleştirilmesiyle oluşur. Başlık, e-postanın kimden geldiğini, kime gönderildiğini, konusunu, tarihini ve diğer önemli bilgileri içerirken, gövde, gönderilen mesajın metnidir.
E-posta gönderilirken, gönderenin e-posta istemcisi, alıcının e-posta adresini (kullanıcı adı ve alan adı) SMTP sunucusuna gönderir. SMTP sunucusu, alıcının e-posta adresinin hangi posta sunucusunda saklandığını belirlemek için DNS'e (Alan Adı Sistemi) sorgulama yapar. Eğer doğru posta sunucusu bulunursa, SMTP sunucusu, e-postayı ilgili posta sunucusuna yönlendirir. Alıcının e-posta istemcisi daha sonra, e-postayı almak için popüler protokollerden biri olan POP3 veya IMAP protokolünü kullanarak posta sunucusuna bağlanır ve e-postalarını alır.
SMTP
SMTP (Simple Mail Transfer Protocol), elektronik posta gönderme işlemlerini yönetmek için kullanılan bir ağ protokolüdür. SMTP, posta gönderme ve iletimi için standart bir yol sağlar ve genellikle kullanıcının posta istemcisi ile posta sunucusu arasında iletişim sağlamak için kullanılır. İşte SMTP protokolünün bazı özellikleri:
- SMTP, TCP (Transmission Control Protocol) üzerinde çalışır ve genellikle 25 numaralı portu kullanır.
- SMTP, posta gönderen istemci programının posta sunucusuna bağlanmasına ve istemciden gelen postanın sunucuya teslim edilmesine izin veren bir istemci/sunucu modeli kullanır.
- SMTP sunucuları, alıcı sunuculara e-posta iletisi teslim etmek için diğer SMTP sunucularıyla da iletişim kurabilirler.
- SMTP, posta gönderme işlemi sırasında bazı kontroller gerçekleştirir. Bu kontroller, postanın doğru formatta olup olmadığını, gerekli alanları içerip içermediğini ve alıcı adresinin geçerli olup olmadığını kontrol eder.
- SMTP ayrıca, posta sunucuları arasında güvenli bir şekilde iletim sağlamak için SSL/TLS (Secure Sockets Layer/Transport Layer Security) protokollerini kullanabilir.
SMTP protokolü, posta sunucularının SMTP istekleri hakkında bilgi paylaşımı yapabildiği bazı durumlarda karmaşık hale gelebilir. Bu nedenle, birkaç SMTP uzantısı geliştirilmiştir. Örneğin, ESMTP (Enhanced Simple Mail Transfer Protocol), bir SMTP sunucusunun daha fazla özellik ve uzantı sağlamasına izin verir.
SMTP, e-posta gönderimi için oldukça yaygın olarak kullanılan bir protokoldür. Ancak, bazı dezavantajları da vardır. Örneğin, SMTP sunucuları, bir e-posta mesajının doğru bir şekilde iletilmesini garanti edemez ve bazı durumlarda spam e-postaların iletilmesine izin verebilir. Bu nedenle, e-posta güvenliği için çeşitli önlemler alınmalıdır, örneğin SPF (Sender Policy Framework) veya DKIM (DomainKeys Identified Mail) gibi mekanizmalar kullanılır.
POP3
POP3 (Post Office Protocol 3) elektronik posta almak için kullanılan bir protokoldür. POP3, elektronik posta istemcileri (örneğin Outlook, Thunderbird, Apple Mail) ve elektronik posta sunucuları arasındaki iletişimi sağlar.
POP3, TCP / IP üzerinde çalışır ve genellikle 110 numaralı bağlantı noktasını kullanır. İstemci, sunucuya bağlandığında kimlik doğrulama işlemi gerçekleştirir ve ardından posta kutusunda saklanan yeni e-postaları indirir. POP3, her e-postayı indirirken sunucuda depolandığından, e-postalar genellikle sunucuda silinir.
POP3'ün ana bileşenleri aşağıdaki gibidir:
- Bağlantı oluşturma: POP3 istemcisi, sunucuya bağlanmak için TCP / IP bağlantısını açar ve kimlik doğrulama işlemini gerçekleştirir.
- Posta kutusu listesi: Sunucu, kullanıcının posta kutusunda bulunan e-postaların listesini gönderir.
- E-posta indirme: İstemci, e-postaların içeriğini indirmek için sunucuya komut gönderir. Sunucu, e-postaların içeriğini indirir ve istemciye gönderir.
- E-posta silme: İstemci, e-postaları sunucudan silmek için komut gönderir. Sunucu, e-postaları siler ve artık kullanıcının posta kutusunda bulunmazlar.
POP3'ün dezavantajlarından biri, e-postaların sunucuda depolanmasından kaynaklanan kısıtlı erişimdir. Başka bir dezavantajı ise e-postaların sunucuda depolanması nedeniyle sınırlı depolama alanına sahip sunucuların bu protokolü kullanamamasıdır. Bununla birlikte, POP3, hala birçok kullanıcı tarafından kullanılan ve yaygın olarak desteklenen bir protokoldür.
IMAP
IMAP (Internet Message Access Protocol), e-posta mesajlarının sunucu ile iletişim halindeyken yönetilmesine izin veren bir e-posta protokolüdür. POP3'e benzer, ancak bazı farklılıkları vardır.
IMAP, e-posta sunucusu ve istemci arasında oluşturulan bir bağlantıda çalışır. Bu bağlantı, e-posta sunucusunun TCP/IP üzerinden bir port numarasına bağlanarak açılması ile başlar. IMAP protokolü, istemci tarafından gönderilen isteklere cevap olarak sunucunun yanıt vermesiyle çalışır.
IMAP, POP3'ten farklı olarak e-postaları sunucuda saklar ve istemci, e-postaları sunucuda düzenleyebilir ve farklı klasörlere taşıyabilir. Böylece, farklı cihazlarda ve farklı istemcilerde aynı e-postaları görüntülemek mümkün hale gelir. IMAP, sunucuda saklanan e-postaların kopyalarını istemci cihazlara indirir, ancak asıl kopyalar sunucuda kalır.
IMAP, birçok e-posta istemcisinde kullanılır. Örneğin, Microsoft Outlook, Mozilla Thunderbird ve Apple Mail, IMAP protokolünü desteklerler. IMAP, e-postaların güvenli bir şekilde gönderilmesini sağlamak için SSL gibi güvenlik protokolleriyle birlikte kullanılabilir.
IMAP protokolü ayrıca aşağıdaki işlevleri de destekler:
- Birden fazla e-posta sunucusuna bağlanmak
- E-posta arama özellikleri
- E-postaların etiketlenmesi ve filtrelenmesi
- E-postaların okunma durumlarının ve diğer işaretleyicilerin yönetimi
- E-postaların eklerinin yönetimi.
DNS
DNS (Domain Name System), IP adreslerini insanların hatırlayabileceği alan adlarına çevirmek için kullanılan bir protokoldür. DNS, internetin temel bileşenlerinden biridir ve web sitelerine erişim sağlamak için kullanılır.
DNS, bir hiyerarşik yapıya sahiptir ve anahtar bileşenler aşağıdaki gibidir:
- Kök sunucular: Tüm DNS sorgularının başlangıç noktası olan ana sunuculardır.
- Üst düzey alan adı sunucuları: Top seviye alan adlarını (TLD) yöneten sunuculardır. Örneğin, .com, .org, .net gibi.
- Otorite sunucuları: Belirli bir alan adına ait DNS kayıtlarını saklayan sunuculardır.
DNS sorguları, DNS istemcileri tarafından başlatılır ve DNS sunucuları tarafından yanıtlanır. DNS sorguları iki türlüdür: recursive (özyinelemeli) ve iterative (tekrarlayıcı).
Recursive sorgular, DNS istemcileri tarafından başlatılır ve DNS sunucuları tarafından tam olarak yanıtlanır. Bu tür sorgular, DNS istemcisi tarafından başlatılan sorgunun sonucunu elde etmek için tüm sunuculara sorgu yapar.
Iterative sorgular, DNS istemcileri tarafından başlatılır ve DNS sunucuları tarafından yanıtlanır. Ancak bu tür sorgularda DNS sunucusu, istemciye, sorgusuna en iyi cevabı verecek sunucuyu işaret eder. DNS istemcisi daha sonra sorguyu bu sunucuya yönlendirir.
DNS protokolü, genellikle UDP (User Datagram Protocol) üzerinden çalışır. Ancak, DNS sorguları ve cevapları boyut olarak büyük olabileceğinden, TCP (Transmission Control Protocol) de kullanılabilir.
DNS sorguları, genellikle aşağıdaki türleri içerir:
- A kaydı: Belirtilen alan adına ait IPv4 adresini döndürür.
- AAAA kaydı: Belirtilen alan adına ait IPv6 adresini döndürür.
- MX kaydı: Belirtilen alan adı için e-posta sunucusunun adresini döndürür.
- CNAME kaydı: Bir alan adının başka bir alan adına yönlendirilmesini sağlar.
- NS kaydı: Belirtilen alan adı için otorite sunucularının adresini döndürür.
DNS, internetin temel bileşenlerinden biri olduğu için güvenliği de önemlidir. DNS sunucularının, kötü amaçlı saldırılardan korunması için farklı yöntemler kullanılır, örneğin DNSSEC (DNS Security Extensions) ve DNS over HTTPS (DoH).
P2P Dosya Paylaşımı
P2P dosya paylaşımı, bir grup kullanıcının, dosya paylaşımına izin veren özel bir yazılım kullanarak birbirleriyle doğrudan iletişim kurmasıdır. Bu yazılım, kullanıcılara dosya paylaşımı için bir platform sağlar ve aynı zamanda dosyaların aranması ve indirilmesi için bir arayüz sunar.
P2P dosya paylaşımı, bir dosya sunucusuna gerek duymadan doğrudan kullanıcılar arasında paylaşım yapılmasına izin verir. Dosyalar, kullanıcılar arasında doğrudan paylaşılır ve bir sunucu, bir dosya merkezi veya bir veri tabanı aracılığıyla paylaşılmaz. Bu nedenle, dosya paylaşımı çok daha hızlı ve verimlidir.
P2P dosya paylaşımı ayrıca, kullanıcıların dosyaları paylaşmak için birbirlerine yük bindirmelerine izin verir. Dosyalar, paylaşımı yapan kullanıcının bilgisayarında depolanır ve indirildiğinde, diğer kullanıcılar tarafından da paylaşılır. Bu, kullanıcılar arasında daha geniş bir dosya ağı oluşturulmasına izin verir ve dosyaların daha hızlı bir şekilde paylaşılmasını sağlar.
P2P dosya paylaşımı, yasal olarak korunmayan dosyaların (örneğin telif hakkıyla korunan müzik veya filmler) paylaşımına da izin verir. Bu nedenle, P2P dosya paylaşımı, telif hakkı ihlallerine neden olabilir ve hukuki sonuçlar doğurabilir.
Bazı popüler P2P dosya paylaşım ağları arasında Gnutella, BitTorrent, eDonkey ve FastTrack bulunur.